package net.ak.dao;

import java.util.List;

import net.ak.model.Category;
import net.ak.model.User;
import net.ak.model.UserCategory;


public interface UserCategoryDao {
	
	/**
	 * This method is used to save or update {@link UserCategory}.
	 * @param userCategory
	 * @return
	 */
	boolean saveOrUpdate(UserCategory userCategory);
	
	/**
	 * This method is used to get all {@link UserCategory} by list {@link Category}.
	 * @param categories
	 * @return
	 */
	List<UserCategory> listUserCategoryByListCategory(List<Category> categories);
	
	
	/**
	 * This method is used to get all {@link UserCategory} by {@link User}.
	 * @param user
	 * @return
	 */
	List<UserCategory> listUserCategoryByUser(User user);
	
	
	/**
	 * This method is used to get all {@link UserCategory} by category id.
	 * @param catId
	 * @return
	 */
	List<UserCategory> listUserCategoriesByCategoryId(Long catId);

}
